/**
 * 
 */
package com.oauth.linkedin.server.service;

import java.util.List;

import com.oauth.linkedin.client.beans.LinkedinUser;
import com.oauth.service.global.beans.Birthday;
import com.oauth.service.global.beans.OAuthAccessToken;
import com.oauth.service.global.beans.OAuthRequestToken;

/**
 * Help to abstract all linkedin api specific classes.
 * 
 * @author asanthan
 * 
 */
public interface LinkedinService {

	OAuthRequestToken getRequestToken() throws Exception;

	List<LinkedinUser> getConnections(Long pMemberId) throws Exception;

	LinkedinUser getLinkedinUser(Long pMemberId) throws Exception;

	List<LinkedinUser> getUpdates(Long pMemberId) throws Exception;

	List<LinkedinUser> getMessages(Long pMemberId) throws Exception;

	void updateStatus(String pText, Long pMemberId) throws Exception;

	List<Birthday> getUpcomingBirthdays(Long pMemberId, int pBirthdayInterval) throws Exception;

	/**
	 * @param pRequestToken
	 * @return
	 * @throws Exception
	 */
	OAuthAccessToken getAccessTokenFromRequestToken(OAuthRequestToken pRequestToken)
			throws Exception;
}
